import { get, post, put, del } from './request.js'

// 问题相关 API
export const questionApi = {
  /**
   * 创建问题
   * @param {Object} questionData - 问题数据
   * @returns {Promise} 创建结果，返回问题ID
   */
  createQuestion: (questionData) => {
    return post('/question/create', questionData)
  },

  /**
   * 更新问题
   * @param {Object} questionData - 问题数据
   * @returns {Promise} 更新结果
   */
  updateQuestion: (questionData) => {
    return put('/question/update', questionData)
  },

  /**
   * 删除问题
   * @param {number} id - 问题ID
   * @returns {Promise} 删除结果
   */
  deleteQuestion: (id) => {
    return del(`/question/${id}`)
  },

  /**
   * 获取问题详情
   * @param {number} id - 问题ID
   * @returns {Promise} 问题详情
   */
  getQuestionDetail: (id) => {
    return get(`/question/${id}`)
  },

  /**
   * 根据问卷ID获取问题列表
   * @param {number} questionnaireId - 问卷ID
   * @returns {Promise} 问题列表
   */
  getQuestionsByQuestionnaireId: (questionnaireId) => {
    return get(`/question/questionnaire/${questionnaireId}`)
  }
}

// 使用示例
export const questionExample = {
  // 创建问题示例
  async createNewQuestion() {
    try {
      const questionData = {
        questionnaireId: 1,
        title: '您对我们的产品满意度如何？',
        type: 1, // 单选题
        required: true,
        sort: 1
      }
      const result = await questionApi.createQuestion(questionData)
      console.log('创建问题成功:', result)
      return result
    } catch (error) {
      console.error('创建问题失败:', error)
      throw error
    }
  },

  // 获取问题详情示例
  async getQuestionById(id) {
    try {
      const result = await questionApi.getQuestionDetail(id)
      console.log('问题详情:', result)
      return result
    } catch (error) {
      console.error('获取问题详情失败:', error)
      throw error
    }
  },

  // 获取问卷下的所有问题示例
  async getQuestionsByQuestionnaire(questionnaireId) {
    try {
      const result = await questionApi.getQuestionsByQuestionnaireId(questionnaireId)
      console.log('问题列表:', result)
      return result
    } catch (error) {
      console.error('获取问题列表失败:', error)
      throw error
    }
  },

  // 更新问题示例
  async updateQuestionById(questionData) {
    try {
      const result = await questionApi.updateQuestion(questionData)
      console.log('更新问题成功:', result)
      return result
    } catch (error) {
      console.error('更新问题失败:', error)
      throw error
    }
  }
} 